TIRE cell input titration

Aim

Investigate the dose response relationship of cell inputs to library size etc

Samples

A serial dilution will be prepared on the day of the experiment.

  • Human HEK293T
  • Mouse NIH3T3
  • No template control

ELN entry

Standard TSO where UMI on TSO followed by spacer. Well barcode in line with read 1

Data to read in

I sequenced these libraries with the configuration

  • Read 1 70bp
  • Read 2 52bp
  • Index read 1 and 2 8bp each

Read SCE and extract col data

sce <- readRDS(here::here(
   "data/TIRE_technical/SCEs/cellInputs_basic.sce.rds"))

tb <- as_tibble(colData(sce))

# Keep only the 8 PCR samples as these performed best and had most reads
tb <- tb %>% 
  filter(PCR_cycles == 8)

Check on plate map representation

Plot on plate map

Samples

p1 <- platetools::raw_map(data=tb$Sample, 
                     well=tb$Well, 
                     plate=96)

p2 <- platetools::raw_map(data=log(tb$sum+1), 
                     well=tb$Well, 
                     plate=96)

p1 / p2

All replicate dot plots by RNA amount

Library size log

plt1 <- ggplot(tb,
             aes(x = Amount+1, y= sum+1, colour = Sample)) + 
  geom_point(size=2) + 
  ylab("Library Size (UMIs)") + 
  xlab("Cell equivalents") +
  geom_smooth(method='lm', se = FALSE) +
  scale_y_continuous(trans='log10') +
  scale_x_continuous(trans='log10') +
  annotation_logticks(base = 10, sides = "l") +
  annotation_logticks(base =10, sides = "b") +
  scale_fill_brewer(palette = "Dark2") +
  facet_wrap(~Replicate, ncol=1)

plt1
Library size in deduplicated UMIs

Library size in deduplicated UMIs

Library size natural scale

plt2 <- ggplot(tb,
             aes(x = Amount, y= sum, colour = Sample)) + 
  geom_point(size=2) + 
  ylab("Library Size (UMIs)") + 
  xlab("Cell equivalents") +  
  scale_fill_brewer(palette = "Dark2") +
  facet_wrap(~Replicate, ncol=1)

plt2
Library size in deduplicated UMIs

Library size in deduplicated UMIs

Detected genes

plt3 <- ggplot(tb,
             aes(x = Amount, y= detected, colour = Sample)) + 
  geom_point(size=2) + 
  ylab("Genes detected") + 
  xlab("Cell equivalents") +
  scale_fill_brewer(palette = "Dark2") +
  facet_wrap(~Replicate, ncol=1)

plt3
Number of detected genes

Number of detected genes

Show only 3rd replicate

Only replicate 1 HEK293T is problematic. However for the sake of clarity in publication I will 2nd replicate

tb_orig <- tb

tb <- tb %>% 
  filter(Replicate == "Two")

tb$Amount <- tb$Amount / 1000
tb$Amount <- as.factor(tb$Amount)

Library size log

plt1 <- ggplot(tb,
             aes(x = Amount, y= sum+1, colour = Sample)) + 
  geom_point(size=2) + 
  ylab("Library Size (UMIs)") + 
  xlab("Cell equivalents (000s)") +
  geom_smooth(method='lm', se = FALSE) +
  scale_y_continuous(trans='log10') +
  annotation_logticks(base = 10, sides = "l") +
  scale_fill_brewer(palette = "Dark2")

plt1
Library size in deduplicated UMIs

Library size in deduplicated UMIs

Library size natural scale

plt2 <- ggplot(tb,
             aes(x = Amount, y= sum, colour = Sample)) + 
  geom_point(size=2) + 
  ylab("Library Size (UMIs)") + 
  xlab("Cell equivalents (000s)") +  
  scale_fill_brewer(palette = "Dark2")

plt2
Library size in deduplicated UMIs

Library size in deduplicated UMIs

Detected genes

plt3 <- ggplot(tb,
             aes(x = Amount, y= detected, colour = Sample)) + 
  geom_point(size=2) + 
  geom_smooth(method='lm', se = FALSE) +
  ylab("Genes detected") + ylim(0, NA) +
  xlab("Cell equivalents (000s)") +
  scale_fill_brewer(palette = "Dark2")

plt3
Number of detected genes

Number of detected genes

Human and mouse mapping

Barnyard natural scale

p1 <- ggplot(tb, aes(x=subsets_Mouse_sum, y=subsets_Human_sum, colour=Sample)) + 
    geom_point(size=2) +
  xlab("Mouse library size") + 
  ylab("Human library size") +
  ylim(0,2e6) + xlim(0,2e6) +
  scale_colour_brewer(palette = "Dark2")

p1

Barnyard log scale

  • Looks deceptive and not how anyone else shows this.
  • Replicate 2 nd 3 look very clean even in log representation
p2 <- ggplot(tb, aes(y=subsets_Human_sum, x=subsets_Mouse_sum, colour=Sample)) + 
    geom_point(size=2) +
  xlab("Mouse library size") + 
  ylab("Human library size") +
  scale_y_continuous(trans='log10') + scale_x_continuous(trans='log10') +
  annotation_logticks(base = 10, sides = "bl") +
  scale_colour_brewer(palette = "Dark2")

p2

Conclusion

  • Replicate 1 looks compromised in terms of contamination especially one of the wells
  • Replicate 1 HEK293T has contamination issues
  • Otherwise all other wells within replicate 2 and replicate 3 have worked.

Session info

sessionInfo()
## R version 4.4.1 (2024-06-14)
## Platform: x86_64-pc-linux-gnu
## Running under: Red Hat Enterprise Linux 9.4 (Plow)
## 
## Matrix products: default
## BLAS:   /stornext/System/data/software/rhel/9/base/tools/R/4.4.1/lib64/R/lib/libRblas.so 
## LAPACK: /stornext/System/data/software/rhel/9/base/tools/R/4.4.1/lib64/R/lib/libRlapack.so;  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: Australia/Melbourne
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] grid      stats4    stats     graphics  grDevices utils     datasets 
## [8] methods   base     
## 
## other attached packages:
##  [1] ggthemes_5.1.0              here_1.0.1                 
##  [3] patchwork_1.3.0             platetools_0.1.7           
##  [5] scater_1.32.1               scuttle_1.14.0             
##  [7] lubridate_1.9.3             forcats_1.0.0              
##  [9] stringr_1.5.1               dplyr_1.1.4                
## [11] purrr_1.0.2                 readr_2.1.5                
## [13] tidyr_1.3.1                 tibble_3.2.1               
## [15] ggplot2_3.5.1               tidyverse_2.0.0            
## [17] SingleCellExperiment_1.26.0 SummarizedExperiment_1.34.0
## [19] Biobase_2.64.0              GenomicRanges_1.56.2       
## [21] GenomeInfoDb_1.40.1         IRanges_2.38.1             
## [23] S4Vectors_0.42.1            BiocGenerics_0.50.0        
## [25] MatrixGenerics_1.16.0       matrixStats_1.4.1          
## 
## loaded via a namespace (and not attached):
##  [1] tidyselect_1.2.1          viridisLite_0.4.2        
##  [3] farver_2.1.2              vipor_0.4.7              
##  [5] viridis_0.6.5             fastmap_1.2.0            
##  [7] digest_0.6.37             rsvd_1.0.5               
##  [9] timechange_0.3.0          lifecycle_1.0.4          
## [11] magrittr_2.0.3            compiler_4.4.1           
## [13] rlang_1.1.4               sass_0.4.9               
## [15] tools_4.4.1               utf8_1.2.4               
## [17] yaml_2.3.10               knitr_1.48               
## [19] labeling_0.4.3            S4Arrays_1.4.1           
## [21] DelayedArray_0.30.1       RColorBrewer_1.1-3       
## [23] abind_1.4-8               BiocParallel_1.38.0      
## [25] withr_3.0.1               fansi_1.0.6              
## [27] beachmat_2.20.0           colorspace_2.1-1         
## [29] scales_1.3.0              cli_3.6.3                
## [31] rmarkdown_2.28            crayon_1.5.3             
## [33] generics_0.1.3            rstudioapi_0.17.0        
## [35] httr_1.4.7                tzdb_0.4.0               
## [37] DelayedMatrixStats_1.26.0 ggbeeswarm_0.7.2         
## [39] cachem_1.1.0              splines_4.4.1            
## [41] zlibbioc_1.50.0           parallel_4.4.1           
## [43] XVector_0.44.0            vctrs_0.6.5              
## [45] Matrix_1.7-0              jsonlite_1.8.9           
## [47] BiocSingular_1.20.0       hms_1.1.3                
## [49] BiocNeighbors_1.22.0      ggrepel_0.9.6            
## [51] irlba_2.3.5.1             beeswarm_0.4.0           
## [53] jquerylib_0.1.4           glue_1.8.0               
## [55] codetools_0.2-20          stringi_1.8.4            
## [57] gtable_0.3.5              UCSC.utils_1.0.0         
## [59] ScaledMatrix_1.12.0       munsell_0.5.1            
## [61] pillar_1.9.0              htmltools_0.5.8.1        
## [63] GenomeInfoDbData_1.2.12   R6_2.5.1                 
## [65] sparseMatrixStats_1.16.0  rprojroot_2.0.4          
## [67] evaluate_1.0.1            lattice_0.22-6           
## [69] highr_0.11                bslib_0.8.0              
## [71] Rcpp_1.0.13               nlme_3.1-164             
## [73] gridExtra_2.3             SparseArray_1.4.8        
## [75] mgcv_1.9-1                xfun_0.48                
## [77] pkgconfig_2.0.3